package com.ms.qw.client.dto;

import com.ms.qw.enums.TipoClaseRacion;
import com.ms.qw.util.NumberUtil;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

public class ReporteRacionIntitucionalDTO {
    private String vDepartamento;
    private String vComite;
    private String cCodComite;


    private String vProvincia;
    private String vDistrito;
    private String cCodDistrito;
    private Integer iTipoModelo;
    private Integer iCodAlimento;
    private Integer iCodTipoRacion;
    private String totalRacionesLabel;

    private String vAlimento;
    private String vColegio;
    private String cCodModular;
    private Integer tiUnidad;
    private Integer iCodColegio;
    private Integer nroRacion;
    private Integer iTipoNivel;
    private String vNivel;
    private String vRacion;
    private String tipoRacion;
    private List<ReporteRacionDistritalDTO> detalle = new ArrayList<ReporteRacionDistritalDTO>();
    private String grupo;
    private Integer totalInicial;
    private Integer totalPrimaria;
    private Integer totalColegios;

    private Integer totalAlumnosInicial;
    private Integer totalAlumnosPrimaria;


    private Integer totalAlumnos;
    private Integer totalRaciones;
    private String subtitulo;
    private String cAgrupado;
    private String vUnidad;
    private BigDecimal raciones;
    private BigDecimal raciones_8;
    private BigDecimal raciones_9;
    private BigDecimal raciones_10;
    private BigDecimal raciones_11;
    private BigDecimal raciones_12;

    private String key;


    public String getKey() {
        return getcCodDistrito() + "-" + getcAgrupado();
    }

    public void setKey(String key) {
        this.key = key;
    }

    private BigDecimal calcular(BigDecimal volumenInicial) {

        return (volumenInicial.divide(new BigDecimal(1000)));

    }

    public Integer getTiUnidad() {
        return tiUnidad;
    }

    public String getSubtitulo() {
        if (iCodTipoRacion == 1) {
            return "REQUERIMIENTOS DE DESAYUNOS";
        } else if (iCodTipoRacion == 2) {
            return "REQUERIMIENTOS DE ALMUERZOS";
        }
        return "";

    }


    public String getGrupo() {
        if (iCodTipoRacion == 1 && iTipoNivel == 1) {
            return "Desayunos nivel inicial";
        } else if (iCodTipoRacion == 1 && iTipoNivel == 2) {
            return "Desayunos nivel primario";
        } else if (iCodTipoRacion == 2 && iTipoNivel == 1) {
            return "Almuerzos nivel inical";
        } else if (iCodTipoRacion == 2 && iTipoNivel == 2) {
            return "Almuerzos nivel primaria";
        }
        return "-";
    }

    public String getvUnidad() {
        if (tiUnidad == 1) {
            return "Kilos";
        } else if (tiUnidad == 2) {
            return "Litros";
        } else if (tiUnidad == 3) {
            return "Litros";
        }
        return "Desconocido";
    }

    public void setvUnidad(String vUnidad) {
        this.vUnidad = vUnidad;
    }

    public Integer getTotalAlumnosInicial() {
        return totalAlumnosInicial;
    }

    public void setTotalAlumnosInicial(Integer totalAlumnosInicial) {
        this.totalAlumnosInicial = totalAlumnosInicial;
    }

    public Integer getTotalAlumnosPrimaria() {
        return totalAlumnosPrimaria;
    }

    public void setTotalAlumnosPrimaria(Integer totalAlumnosPrimaria) {
        this.totalAlumnosPrimaria = totalAlumnosPrimaria;
    }

    public Integer getTotalAlumnos() {
        return totalAlumnos;
    }

    public void setTotalAlumnos(Integer totalAlumnos) {
        this.totalAlumnos = totalAlumnos;
    }

    public Integer getTotalRaciones() {
        return totalRaciones;
    }

    public void setTotalRaciones(Integer totalRaciones) {
        this.totalRaciones = totalRaciones;
    }

    public String getcCodModular() {
        return cCodModular;
    }

    public void setcCodModular(String cCodModular) {
        this.cCodModular = cCodModular;
    }

    public void setTiUnidad(Integer tiUnidad) {
        this.tiUnidad = tiUnidad;
    }


    public String getvNivel() {
        if (iTipoNivel == 1) return "INICIAL";
        if (iTipoNivel == 2) return "PRIMARIA";
        return "";
    }

    public void setvNivel(String vNivel) {
        this.vNivel = vNivel;
    }


    public String getvTipoRacion() {
        if (iCodTipoRacion == 1) {
            return "DESAYUNO";
        } else if (iCodTipoRacion == 2) {
            return "ALMUERZO";
        }
        return "";
    }


    public String getvDepartamento() {
        return vDepartamento;
    }

    public void setvDepartamento(String vDepartamento) {
        this.vDepartamento = vDepartamento;
    }

    public String getvComite() {
        return vComite;
    }

    public void setvComite(String vComite) {
        this.vComite = vComite;
    }

    public String getvProvincia() {
        return vProvincia;
    }

    public void setvProvincia(String vProvincia) {
        this.vProvincia = vProvincia;
    }

    public String getvDistrito() {
        return vDistrito;
    }

    public void setvDistrito(String vDistrito) {
        this.vDistrito = vDistrito;
    }

    public String getcCodDistrito() {
        return cCodDistrito;
    }

    public void setcCodDistrito(String cCodDistrito) {
        this.cCodDistrito = cCodDistrito;
    }

    public Integer getiCodAlimento() {
        return iCodAlimento;
    }

    public void setiCodAlimento(Integer iCodAlimento) {
        this.iCodAlimento = iCodAlimento;
    }

    public Integer getiCodTipoRacion() {
        return iCodTipoRacion;
    }

    public void setiCodTipoRacion(Integer iCodTipoRacion) {
        this.iCodTipoRacion = iCodTipoRacion;
    }

    public String getvAlimento() {
        return vAlimento;
    }

    public void setvAlimento(String vAlimento) {
        this.vAlimento = vAlimento;
    }

    public String getvColegio() {
        return vColegio;
    }

    public void setvColegio(String vColegio) {
        this.vColegio = vColegio;
    }

    public Integer getiCodColegio() {
        return iCodColegio;
    }

    public void setiCodColegio(Integer iCodColegio) {
        this.iCodColegio = iCodColegio;
    }

    public Integer getNroRacion() {
        return nroRacion;
    }

    public void setNroRacion(Integer nroRacion) {
        this.nroRacion = nroRacion;
    }

    public Integer getiTipoNivel() {
        return iTipoNivel;
    }

    public void setiTipoNivel(Integer iTipoNivel) {
        this.iTipoNivel = iTipoNivel;
    }

    public BigDecimal getRaciones() {
        return raciones_8.add(raciones_9).add(raciones_10).add(raciones_11).add(raciones_12);
    }

    public void setRaciones(BigDecimal raciones) {
        this.raciones = raciones;
    }

    public BigDecimal getRaciones_8() {
        return raciones_8;
    }

    public void setRaciones_8(BigDecimal raciones_8) {
        this.raciones_8 = raciones_8;
    }

    public BigDecimal getRaciones_9() {
        return raciones_9;
    }

    public void setRaciones_9(BigDecimal raciones_9) {
        this.raciones_9 = raciones_9;
    }

    public BigDecimal getRaciones_10() {
        return raciones_10;
    }

    public void setRaciones_10(BigDecimal raciones_10) {
        this.raciones_10 = raciones_10;
    }

    public BigDecimal getRaciones_11() {
        return raciones_11;
    }

    public void setRaciones_11(BigDecimal raciones_11) {
        this.raciones_11 = raciones_11;
    }

    public BigDecimal getRaciones_12() {
        return raciones_12;
    }

    public void setRaciones_12(BigDecimal raciones_12) {
        this.raciones_12 = raciones_12;
    }

    public Integer getTotalInicial() {
        return totalInicial;
    }

    public void setTotalInicial(Integer totalInicial) {
        this.totalInicial = totalInicial;
    }

    public Integer getTotalPrimaria() {
        return totalPrimaria;
    }

    public void setTotalPrimaria(Integer totalPrimaria) {
        this.totalPrimaria = totalPrimaria;
    }

    public Integer getTotalColegios() {
        return NumberUtil.nvlIsZero(totalInicial) + NumberUtil.nvlIsZero(totalPrimaria);
    }

    public void setTotalColegios(Integer totalColegios) {
        this.totalColegios = totalColegios;
    }

    public String getvRacion() {
        return vRacion;
    }

    public void setvRacion(String vRacion) {
        this.vRacion = vRacion;
    }

    private Integer iCodClaseRacion;
    private String claseRacion;

    public Integer getiCodClaseRacion() {
        return iCodClaseRacion;
    }

    public void setiCodClaseRacion(Integer iCodClaseRacion) {
        this.iCodClaseRacion = iCodClaseRacion;
    }

    public String getClaseRacion() {
        if (iCodClaseRacion == 1) {
            return "RACION";
        } else if (iCodClaseRacion == 2) {
            return "PRODUCTO";
        } else if (iCodClaseRacion == 2) {
            return "PRODUCTO ALEJADO";
        }
        return "";
    }

    public void setClaseRacion(String claseRacion) {
        this.claseRacion = claseRacion;
    }

    public String getTipoRacion() {
        return tipoRacion;
    }

    public void setTipoRacion(String tipoRacion) {
        this.tipoRacion = tipoRacion;
    }

    public String getTotalRacionesLabel() {
        return totalRacionesLabel;
    }

    public void setTotalRacionesLabel(String totalRacionesLabel) {
        this.totalRacionesLabel = totalRacionesLabel;

    }

    public List<ReporteRacionDistritalDTO> getDetalle() {
        return detalle;
    }

    public void setDetalle(List<ReporteRacionDistritalDTO> detalle) {
        this.detalle = detalle;
    }

    public String getTipoModeloLabel() {
        return TipoClaseRacion.findByCode(iTipoModelo).getAliasReporte();
    }

    public Integer getiTipoModelo() {
        return iTipoModelo;
    }

    public void setiTipoModelo(Integer iTipoModelo) {
        this.iTipoModelo = iTipoModelo;
    }

    public void setGrupo(String grupo) {
        this.grupo = grupo;
    }

    public String getcAgrupado() {
        return cAgrupado;
    }

    public void setcAgrupado(String cAgrupado) {
        this.cAgrupado = cAgrupado;
    }

    public void setSubtitulo(String subtitulo) {
        this.subtitulo = subtitulo;
    }
}
